/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package pbl_servidor;

import java.io.DataOutput;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 * @author Tayane
 */
public class ChatControlServer {
    
    int contCotas = 3;
    List<CotaChatServer> listaCotasChat;
    int id_cotas = 0;
    int portaMulticast = 12380;
    int ipMulticast = 1;
    
    public ChatControlServer(){ //construtor
        listaCotasChat = new ArrayList<CotaChatServer>();
    }    
    public void solicitacaoCota(Socket solicitador){ //recebe a requisicao da cota e entrega a mesma ou nao
        if(contCotas == 0){
            System.out.println("Não existe cota disponível");
            DataOutputStream msg;
            try {
                msg = new DataOutputStream(solicitador.getOutputStream());
                msg.writeUTF("CotaIndisponivel");
                System.out.println("Enviei msg dizendo que não existe cota disponível para " + solicitador.getLocalAddress());
            } catch (IOException ex) {
                Logger.getLogger(ChatControlServer.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
        else {
            System.out.println("Existe cota disponível: " + contCotas + " vagas disponiveis");
            contCotas--;
            id_cotas++;
            ipMulticast += 4;
            portaMulticast++;
            CotaChatServer cota = new CotaChatServer();
            cota.setId_cota(id_cotas);
            cota.setSolicitador(solicitador);
            cota.setSalaAtiva(false);
            listaCotasChat.add(cota);        
            DataOutputStream msg;
            try {
                msg = new DataOutputStream(solicitador.getOutputStream());
                msg.writeUTF("CotaLiberada:" + id_cotas + ":" + ipMulticast + ":" + portaMulticast);
                System.out.println("Enviei msg dizendo que existe cota disponível para " + solicitador.getLocalAddress());
                System.out.println("CotaLiberada:" + id_cotas + ":" + ipMulticast + ":" + portaMulticast);
                System.out.println("Agora tem " + contCotas + " vagas disponiveis");
            } catch (IOException ex) {
                Logger.getLogger(ChatControlServer.class.getName()).log(Level.SEVERE, null, ex);
            }
        }  
    }
    
}
